package homework01;

import java.io.*;

/*（FileInputStream 和FileOutputStream）利用FileInputStream 和FileOutputStream，完成
下面的要求：
1） 用FileOutputStream 在当前项目doc目录下创建一个文件“test.txt”，并向文件写入“Hello
World”，如果文件已存在，则在原有文件内容后面追加内容。
2） 用FileInputStream 读取test.txt 文件，并在控制台上打印出test.txt 中的内容。
3） 要求用try-catch-finally 处理异常，并且关闭流应放在finally 块中。*/
public class IO01 {

	public static void sop(Object o) {

		System.out.println(o);
	}

	static void write(FileOutputStream fos, String s) {
		byte arr[] = s.getBytes();
		try {
			fos.write(arr);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {

			try {
				fos.close();
			} catch (IOException e1) {
				e1.printStackTrace();

			}
		}
	}

	// 用FileInputStream 读入test.txt 文件，并在控制台上打印出test.txt 中的内容。
	static void read(FileInputStream fis) {

		int len = 0;
		try {
			byte b[] = new byte[fis.available()];
			while ((len = fis.read(b)) != -1) {
				sop(new String(b)); // 将数组转为字符串输出
			}
		} catch (IOException e) {

			e.printStackTrace();

		} finally {

			try {

				fis.close();

			} catch (IOException e1) {

				e1.printStackTrace();
			}

		}

	}

	public static void main(String args[]) {
		FileInputStream fis = null;
		FileOutputStream fos = null;

		try {

			fos = new FileOutputStream(new File("test.txt"), true);// 如文件已存在
			// 则在文件内容后追加
			fis = new FileInputStream("test.txt");
		} catch (IOException e) {
			e.printStackTrace();
		}
		write(fos, "Hello World");
		read(fis);

	}
}
